package com.ty.xiaoyu.service;

import com.ty.xiaoyu.entity.Notify;
import com.ty.xiaoyu.exception.NotifyOperationException;

import java.util.List;

public interface NotifyService {

    // 创建notify
    void addNotify(Notify notify) throws NotifyOperationException;

    // 删除消息
    void cancelNotify(String notifyId) throws NotifyOperationException;

    // 获取未读全部通知
    List<Notify> getAllNotifyList(String userId) throws NotifyOperationException;

    // 获取未读全部通知数量
    Integer getAllNotifyListCount(String userId);

    // 获取某类别的通知列表
    List<Notify> getNotifyList(String userId, String notifyModuleId) throws NotifyOperationException;

    // 寻找“赞”提醒通知，根据消息类型、发送者id、接收者id获取通知(逻辑不对，不应使用）
    Notify getNotifyByNotifyTypeAndSenderIdAndTopicId(String notifyModuleId, String senderId, String receiverId);

    // 更新已阅读状态
    void modifyNotifyIsReadByUserIdAndModuleId(String userId, String notifyModuleId) throws NotifyOperationException;

    // ===================================================

    // 获取公告
    List<Notify> getAnnounceList(String userId);

    // 获取公告数量
    Integer getAnnounceListCount(String userId);
    
    // 获取消息
    List<Notify> getMessageList(String userId);

    // 获取消息数量
    Integer getMessageListCount(String userId);

    // 获取赞
    List<Notify> getGreatList(String userId);

    // 获取赞数量
    Integer getGreatListCount(String userId);

    // 获取评论
    List<Notify> getCommentList(String userId);

    // 获取评论数量
    Integer getCommentListCount(String userId);


}
